1. Field of the Invention
The present invention relates to the field of computer software and, more particularly, to gathering operational metrics within a grid environment.
2. Description of the Related Art
A grid computing environment is a distributed computing environment where computing, application, storage, and/or network resources can be shared across geographically disperse organizations. An ideal grid computing environment allows flexible, secure, coordinated resource sharing among dynamic collections of individuals, organizations, and resources. In the grid environment, a variety of computing resources that contribute to a virtual resource pool can be transparently utilized on an as-needed basis. Grid computing resources in the virtual resource pool can be treated as commodities or services, which can be consumed in a manner similar to the commercial consumption of electricity and water.
While grid computing may presently be at an early stage in its evolution, several grid computing environments have been successfully implemented. One noteworthy implementation is the NC BioGrid Project that was successfully implemented in the fall of 2001 to enable researchers and educators throughout North Carolina to pool computing resources for use in sequencing genes and related genetic research. Other notable grid implementations include SETI@home, the Drug Design and Optimization Lab (D2OL), and EUROGRID. Additionally, commercially available software products exist for establishing a customizable grid computing environment, such as Avaki's data grid from Avaki of Burlington, Maine and Grid MP Enterprise from United Devices of Austin, Tex. Further, a number of readily available toolkits and standards have been developed for creating a grid computing environment including, for example, the Globus Toolkit provided by the Globus project and the Open Grid Services Architecture (OGSA).
A grid computing environment can include multiple application domains. Each application domain can include a set of computing resources that perform a series of related tasks. Examples of application domains include, but are not limited to, word processors, database programs, Web browsers, development tools, drawing applications, image editing programs, and communication programs. The various computing resources of one application domain can be distributed across several different grids within a grid computing environment, where each grid can contain a myriad of diverse hardware components, such as communication lines, networking routers, servers, workstations, peripherals, intranets, and the like.
The intermeshing of applications, users, and processes within the grid environment can make gathering operational metrics extremely difficult. That is, no simple method exists for determining resource consumption metrics for individual resource consumers that share a common pool of geographically disperse computing resources. As used herein, operational metrics refer to performance metrics and load metrics. Performance metrics include measurements of the time needed for individual transactions to be completed. Load metrics include measurements of the traffic within a hardware component and measurements of the capacity of hardware resources being consumed.
Many important operational issues, such as problem troubleshooting, grid planning, and software deployment, can require the gathering of operational metrics. Otherwise, the level of resources consumed by individual consumers cannot be accurately accessed resulting in potentially severe problems. Without proper operational metrics, the source causes of performance and load problems cannot be competently determined nor reliably avoided.
Conventional methods for gathering operational metrics involve extrapolation. Extrapolation methods attempt to determine operational metrics using small, finite, measurable increments of system resources. The measurable increments are applied to an extrapolation algoritlun in order to determine the operational metrics of a grid, a user, and/or an application. The extrapolation methods are inadequate for accurately determining resource consumption on an individual consumer basis.